#include "app_runner.h"
#include <signal.h>
#include "app_pool.h"
#include "app_device.h"
#include "app_mqtt.h"
#include "app_bt.h"
#include <unistd.h>
#include "log/log.h"
static int is_running = 1;

void exit_handler(int signum)
{
    log_debug("接收到结束进程的信号，即将结束进程");
    is_running = 0;
}

void app_runner_run()
{
    /*注册信号处理函数*/
    signal(SIGINT, exit_handler);
    signal(SIGTERM, exit_handler);

    /*初始化线程池*/
    app_pool_Init(5);
    log_debug("线程池初始化完成");
    /*初始化MQTT客户端*/
    app_mqtt_init();
    log_debug("MQTT初始化完成");
    /*初始化设备*/
    Device *device = app_device_init(DEVICE_FILE);
    log_debug("设备初始化完成");
    /*初始化蓝牙串口*/
    app_bt_Init(device);
    log_debug("串口初始化完成");
    /*启动设备*/
    app_device_start();
    log_debug("设备启动完成");
    while (is_running == 1)
    {
        sleep(1);
    }
    /*释放资源*/
    app_pool_close();
    app_mqtt_close();
    app_device_destroy();
}